1. Field of the Invention
The invention relates in general to methods of developing ladder logic programs for Programmable Logic Controllers (PLCs). In particular, the invention provides a method of creating a "generic" control system for automating the configuration of I/O modules, and more importantly, the automatic generation of I/O channels for allowing the assignment and configuration of the I/O module at runtime.
2. Related Art
Programmable logic controllers (PLCs) perform many of the control functions for assembly line machines, machine tools, and other types of industrial equipment in accordance with a stored program. The control program comprises a series of process control instructions that are read out and executed to examine the condition of selected sensing devices on the controlled equipment, and to energize or deenergize selected operating devices. A typical PLC, such as a type manufactured by Allen-Bradley Company, is capable of executing a number of categories of instructions, including a standard set of arithmetic, logical, move, diagnostic, register, comparison, and data transfer instructions as in any computer.
The International Electrotechnical Commission (IEC) 1131 committee has developed a common set of programming interfaces and four basic languages for programming PLCs, regardless of the manufacturer. The four basic languages are ladder diagram (ladder logic), instruction list, structured text, and function block diagram. A fifth basic language, sequential function charts, is used within the four basic languages.
Electrical engineers write most of the control software using the ladder logic programming language. Ladder logic originated with electricians and electrical maintenance operations and, although adapted, ladder logic still uses a standardized set of symbols from that discipline to represent electrical sequences of operations. A series of electrical relay contacts, timer, counters and the like, are laid out in software to control various hardware field devices.
Ladder logic diagrams are used to represent the interconnections of field devices in such a way that the activation of one device could turn on another according to a predetermined sequence of events. It starts at the top of a sequence of actions, then moves down in steps. Once completed, it repeats the whole sequence.
Instruction list is a low-level language similar to assembler language. Only one operation, such as storing a value in a register, is allowed per line of coding. It is useful for smaller applications or for optimizing parts of an application.
Structured text is a high-level block structure language that has a syntax that resembles Pascal. It can be used to express complex statements involving variables representing a wide range of different types of data, including analog and digital values. There also are specific data types for the management of time, dates, and durations, which are important to batch processing applications.
Function block diagram is a graphical language that allows program elements that appear as blocks to be "wired" together in a form similar to a circuit diagram. Function blocks are standard blocks that execute algorithms such as for equipment in a Process Instrument Diagram (PID). Function block diagrams are well-suited for applications that involve the flow of information or data between control components.
A language that pervades all other languages is sequential function chart (SFC). This graphical language is a way of organizing programs written in the other four in such a way as to accomplish sequential control. SFC provides a diagrammatic representation of program sequences. It supports alternative sequence selections and parallel sequences.
Typically, the industry uses a standard approach to design an automated control system using various proprietary hardware in conjunction with customized software. This standard approach has serious drawbacks. First, the proprietary hardware will eventually become obsolete because a change of hardware usually necessitates a corresponding change in the control system. Second, minor changes from site to site can result in short term delays due to recoding and debugging. As a result, long term cost increases because many different versions or multiple control systems of the same control system generating a complex support problem. Third, there is no consistent performance or data from the multiple control systems because each control system is not identical. Finally, in a hard-wired, hard-coded system, the end user has little ability to modify the system to meet the changing needs of the end user.
In view of the foregoing, it is an object of the invention to provide a method of producing a generic control system designed to work with any hardware in the control system by using a Virtual Rack I/O module. The generic control system is both very capable and highly configurable to the specific task. To produce a generic, robotic paint control system, for example, the generic control system would consider all variations to the theme found in the entire scope of that industry. The generic control system would include all types of hardware interfacing, control strategy as well as considering the variables in the product to be painted. With the generic control system, understanding the control system is no longer a concern to the end user, the end user needs only to "configure" the generic control system to generate a specific control system that performs the required task.
Because the I/O hardware and wiring are separate from the control logic, the generic approach of a generic control system using the Virtual Rack I/O module has several distinct advantages from the standard approach. First, future changes in hardware can be accommodated by the system without modifying the software. Second, a generic control system does not compromise the control system design or scope. Third, a generic control system can be installed as an upgrade to an existing automated control system without risk or overhead to the end user. Fourth, a generic control system provides one standard control system for a wide variety of applications, thereby reducing cost while ensuring site-wide consistent performance and data. Fifth, a generic control system is highly configurable so that the end user has the power and flexibility to modify hardware, control strategy or scope by changing the system's configuration. Finally, a generic control system does not need to be modified and can be rapidly installed from site to site.